package com.feng.thread;

/*
定义一个卖票程序
*/

public class Ticket implements Runnable {
	int x = 100;// 定义成员变量，是多线程共享这个数据。而局部变量时每个线程都完全拥有的，不共享。

	public void run() {
		boolean flag = true;// 控制线程结束的标识
		while (flag) {
			synchronized (this)// synchronized(Object)
			{
				if (x > 0) {
					try {
						// Thread.sleep(100);// 睡眠，导致可能会出现负数的ticket
					} catch (Exception e) {
					}
					System.out.println(Thread.currentThread().getName() + "..." + "ticket" + x--);
				} else {
					flag = false;
				}
			}
		}
	}

	public static void main(String[] args) {
		Ticket d = new Ticket();
		Thread t1 = new Thread(d);
		Thread t2 = new Thread(d);
		Thread t3 = new Thread(d);
		t1.start();
		t2.start();
		t3.start();
		// System.out.println("Hello World!");
	}
}
